<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        let input = `9
        3`
        input = input.split('\n')

        let N = parseInt(input[0].trim(), 10)
        let K = parseInt(input[1].trim(), 10)
        console.log(N, K);
        
        let nums = Array.from(new Array(N), (v, i) => { return i + 1 + '' })
        let num_lis = [nums[nums.length - 1]]

        function insert(odStr, index, newstr) {//封装插入函数
            return odStr.slice(0, index) + newstr + odStr.slice(index)
        }

        for (let i = N - 2; i >= 0; i--) {//倒叙从倒数第二个位置开始插入
            let str_now = nums[i]//取当前位置的值，初始倒数第二个            
            let str_len = num_lis[0].length//已存的数的长度
            let lis = []//用来存本轮的值
            for (let j = 0; j < num_lis.length; j++) {//遍历已经生成的开始插入
                for (let t = 0; t <=str_len; t++) {//在该遍历数的各个位置插入数
                    let str = ''
                    str = insert(num_lis[j], t,str_now)
                    lis.push(str)                  
                }
            }
            
            num_lis = lis      
        }
        


        console.log(num_lis);   




    </script>
</body>

</html>